package com.mt.course.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class CourseEntity implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = -8888128516566145006L;

    private Integer courseId;

    private String courseNo;

    private String courseName;

    private String courseTitle;

    private String keywords;

    private String courseImage;

    private Integer topCategoryId;

    private Integer categoryId;

    private Integer isTop;

    private Integer labelId;

    private Integer brandId;

    private Integer clickCount;

    private Integer sortOrder;

    private BigDecimal shopPrice;

    private BigDecimal marketPrice;

    private BigDecimal promotePrice;

    private String thumb;

    private Integer isShow;

    private Integer isHot;

    private Integer isBest;

    private Integer isNew;

    private Integer isRecommend;

    private Integer isFree;

    private Integer isPromote;

    private Date promoteTime;

    private Integer status;

    private Date createTime;

    private Date updateTime;

    private String teacherId;

    private Integer classCount;

    private String hotName;

    private Integer courseUseYears;

    private Integer payCount;

    private Integer picCount;

    private Integer isChuan;

    private Integer isAudition;

    private Integer isAgentTalk;

    private Integer isAgentTopic;

    private String courseDesc;

    /**
     * 用户是否购买当前课程，默认0-为购买，1-已经购买
     */
    private Integer isPay;

    private Integer courseSource;

    private String outCourseNo;

    private String outCourseLinkUrlAPP;

    private String outCourseLinkUrlPC;

    private Integer isDelete;

    /**
     * 课程服务id,可多选
     */
    private String serviceConfigId;

    private Map<Integer, Object> serviceConfigMap;

    private CourseCategoryEntity topCategoryEntity;

    private CourseCategoryEntity categoryEntity;

    private Integer isPackage;

    /**
     * 课程包包含课程id，可多选
     */
    private String packageCourseIds;

    /**
     * 当前已经学习的课时数
     */
    private Integer learnCount;

    /**
     * 如果用户登录了，查询用户当前课程总的学习进度 ，计算方式：总学习时长/课程总时长
     */
    private double progress;

    /**
     * 是否收藏
     */
    private boolean isCollect;

    /**
     * 免费课程是否已经领取
     */
    private boolean isReceived;

    private String shareLink;

    private CourseGoodsLearnLogEntity lastLearnLogEntity;

    private List<CourseEntity> courseEntityList;

    private List<ServiceConfigEntity> serviceConfigList;

    private List<CatalogEntity> catalogList;

    private List<TeacherEntity> teacherEntityList;

    public boolean isCollect() {
        return isCollect;
    }

    public void setCollect(boolean collect) {
        isCollect = collect;
    }

    public List<TeacherEntity> getTeacherEntityList() {
        return teacherEntityList;
    }

    public void setTeacherEntityList(List<TeacherEntity> teacherEntityList) {
        this.teacherEntityList = teacherEntityList;
    }

    public String getPackageCourseIds() {
        return packageCourseIds;
    }

    public void setPackageCourseIds(String packageCourseIds) {
        this.packageCourseIds = packageCourseIds;
    }

    public List<CourseEntity> getCourseEntityList() {
        return courseEntityList;
    }

    public void setCourseEntityList(List<CourseEntity> courseEntityList) {
        this.courseEntityList = courseEntityList;
    }

    public Integer getCourseId() {
        return courseId;
    }

    public void setCourseId(Integer courseId) {
        this.courseId = courseId;
    }

    public String getCourseNo() {
        return courseNo;
    }

    public void setCourseNo(String courseNo) {
        this.courseNo = courseNo == null ? null : courseNo.trim();
    }

    // 在实体类属性的get方法上增加JsonIgnore注解，在返回给客户端的json中将会过滤掉此字段，
    // 但是鉴于api项目与后台项目等等都公用实体类，所以这个处理需要谨慎行事，多多测试，例如前段app不需要此字段，但是后台管理需要
    // @JsonIgnore
    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName == null ? null : courseName.trim();
    }

    public String getCourseTitle() {
        return courseTitle;
    }

    public void setCourseTitle(String courseTitle) {
        this.courseTitle = courseTitle == null ? null : courseTitle.trim();
    }

    public String getKeywords() {
        return keywords;
    }

    public void setKeywords(String keywords) {
        this.keywords = keywords == null ? null : keywords.trim();
    }

    public String getCourseImage() {
        return courseImage;
    }

    public void setCourseImage(String courseImage) {
        this.courseImage = courseImage == null ? null : courseImage.trim();
    }

    public Integer getTopCategoryId() {
        return topCategoryId;
    }

    public void setTopCategoryId(Integer topCategoryId) {
        this.topCategoryId = topCategoryId;
    }

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    public Integer getIsTop() {
        return isTop;
    }

    public void setIsTop(Integer isTop) {
        this.isTop = isTop;
    }

    public Integer getLabelId() {
        return labelId;
    }

    public void setLabelId(Integer labelId) {
        this.labelId = labelId;
    }

    public Integer getBrandId() {
        return brandId;
    }

    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }

    public Integer getClickCount() {
        return clickCount;
    }

    public void setClickCount(Integer clickCount) {
        this.clickCount = clickCount;
    }

    public Integer getSortOrder() {
        return sortOrder;
    }

    public void setSortOrder(Integer sortOrder) {
        this.sortOrder = sortOrder;
    }

    public BigDecimal getShopPrice() {
        return shopPrice;
    }

    public void setShopPrice(BigDecimal shopPrice) {
        this.shopPrice = shopPrice;
    }

    public BigDecimal getMarketPrice() {
        return marketPrice;
    }

    public void setMarketPrice(BigDecimal marketPrice) {
        this.marketPrice = marketPrice;
    }

    public BigDecimal getPromotePrice() {
        return promotePrice;
    }

    public void setPromotePrice(BigDecimal promotePrice) {
        this.promotePrice = promotePrice;
    }

    public String getThumb() {
        return thumb;
    }

    public void setThumb(String thumb) {
        this.thumb = thumb == null ? null : thumb.trim();
    }

    public Integer getIsShow() {
        return isShow;
    }

    public void setIsShow(Integer isShow) {
        this.isShow = isShow;
    }

    public Integer getIsHot() {
        return isHot;
    }

    public void setIsHot(Integer isHot) {
        this.isHot = isHot;
    }

    public Integer getIsBest() {
        return isBest;
    }

    public void setIsBest(Integer isBest) {
        this.isBest = isBest;
    }

    public Integer getIsNew() {
        return isNew;
    }

    public void setIsNew(Integer isNew) {
        this.isNew = isNew;
    }

    public Integer getIsRecommend() {
        return isRecommend;
    }

    public void setIsRecommend(Integer isRecommend) {
        this.isRecommend = isRecommend;
    }

    public Integer getIsFree() {
        return isFree;
    }

    public void setIsFree(Integer isFree) {
        this.isFree = isFree;
    }

    public Integer getIsPromote() {
        return isPromote;
    }

    public void setIsPromote(Integer isPromote) {
        this.isPromote = isPromote;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(String teacherId) {
        this.teacherId = teacherId == null ? null : teacherId.trim();
    }

    public Integer getClassCount() {
        return classCount;
    }

    public void setClassCount(Integer classCount) {
        this.classCount = classCount;
    }

    public String getHotName() {
        return hotName;
    }

    public void setHotName(String hotName) {
        this.hotName = hotName == null ? null : hotName.trim();
    }

    public Integer getCourseUseYears() {
        return courseUseYears;
    }

    public void setCourseUseYears(Integer courseUseYears) {
        this.courseUseYears = courseUseYears;
    }

    public Integer getPayCount() {
        return payCount;
    }

    public void setPayCount(Integer payCount) {
        this.payCount = payCount;
    }

    public Integer getPicCount() {
        return picCount;
    }

    public void setPicCount(Integer picCount) {
        this.picCount = picCount;
    }

    public Integer getIsChuan() {
        return isChuan;
    }

    public void setIsChuan(Integer isChuan) {
        this.isChuan = isChuan;
    }

    public Integer getIsAudition() {
        return isAudition;
    }

    public void setIsAudition(Integer isAudition) {
        this.isAudition = isAudition;
    }

    public Integer getIsAgentTalk() {
        return isAgentTalk;
    }

    public void setIsAgentTalk(Integer isAgentTalk) {
        this.isAgentTalk = isAgentTalk;
    }

    public Integer getIsAgentTopic() {
        return isAgentTopic;
    }

    public void setIsAgentTopic(Integer isAgentTopic) {
        this.isAgentTopic = isAgentTopic;
    }

    public String getCourseDesc() {
        return courseDesc;
    }

    public void setCourseDesc(String courseDesc) {
        this.courseDesc = courseDesc == null ? null : courseDesc.trim();
    }

    public CourseCategoryEntity getTopCategoryEntity() {
        return topCategoryEntity;
    }

    public void setTopCategoryEntity(CourseCategoryEntity topCategoryEntity) {
        this.topCategoryEntity = topCategoryEntity;
    }

    public CourseCategoryEntity getCategoryEntity() {
        return categoryEntity;
    }

    public void setCategoryEntity(CourseCategoryEntity categoryEntity) {
        this.categoryEntity = categoryEntity;
    }

    public Integer getIsPay() {
        return isPay;
    }

    public void setIsPay(Integer isPay) {
        this.isPay = isPay;
    }

    public Date getPromoteTime() {
        return promoteTime;
    }

    public void setPromoteTime(Date promoteTime) {
        this.promoteTime = promoteTime;
    }

    public Integer getCourseSource() {
        return courseSource;
    }

    public void setCourseSource(Integer courseSource) {
        this.courseSource = courseSource;
    }

    public String getOutCourseNo() {
        return outCourseNo;
    }

    public void setOutCourseNo(String outCourseNo) {
        this.outCourseNo = outCourseNo;
    }

    public String getOutCourseLinkUrlAPP() {
        return outCourseLinkUrlAPP;
    }

    public void setOutCourseLinkUrlAPP(String outCourseLinkUrlAPP) {
        this.outCourseLinkUrlAPP = outCourseLinkUrlAPP;
    }

    public String getOutCourseLinkUrlPC() {
        return outCourseLinkUrlPC;
    }

    public void setOutCourseLinkUrlPC(String outCourseLinkUrlPC) {
        this.outCourseLinkUrlPC = outCourseLinkUrlPC;
    }

    public Integer getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public String getServiceConfigId() {
        return serviceConfigId;
    }

    public void setServiceConfigId(String serviceConfigId) {
        this.serviceConfigId = serviceConfigId;
    }

    public Map<Integer, Object> getServiceConfigMap() {
        return serviceConfigMap;
    }

    public void setServiceConfigMap(Map<Integer, Object> serviceConfigMap) {
        this.serviceConfigMap = serviceConfigMap;
    }

    public Integer getIsPackage() {
        return isPackage;
    }

    public void setIsPackage(Integer isPackage) {
        this.isPackage = isPackage;
    }

    public List<ServiceConfigEntity> getServiceConfigList() {
        return serviceConfigList;
    }

    public void setServiceConfigList(List<ServiceConfigEntity> serviceConfigList) {
        this.serviceConfigList = serviceConfigList;
    }

    public boolean getIsCollect() {
        return isCollect;
    }

    public void setIsCollect(boolean isCollect) {
        this.isCollect = isCollect;
    }

    public List<CatalogEntity> getCatalogList() {
        return catalogList;
    }

    public void setCatalogList(List<CatalogEntity> catalogList) {
        this.catalogList = catalogList;
    }

    public Integer getLearnCount() {
        return learnCount;
    }

    public void setLearnCount(Integer learnCount) {
        this.learnCount = learnCount;
    }

    public double getProgress() {
        return progress;
    }

    public void setProgress(double progress) {
        this.progress = progress;
    }

    public CourseGoodsLearnLogEntity getLastLearnLogEntity() {
        return lastLearnLogEntity;
    }

    public void setLastLearnLogEntity(CourseGoodsLearnLogEntity lastLearnLogEntity) {
        this.lastLearnLogEntity = lastLearnLogEntity;
    }

    public boolean getIsReceived() {
        return isReceived;
    }

    public void setIsReceived(boolean isReceived) {
        this.isReceived = isReceived;
    }

    public String getShareLink() {
        return shareLink;
    }

    public void setShareLink(String shareLink) {
        this.shareLink = shareLink;
    }
}